package com.sdap2.common.utils;

import org.springframework.beans.BeanUtils;
import org.springframework.util.ReflectionUtils;

import java.lang.reflect.Field;
import java.util.Map;

public class UpdateTool {
    
    /**
     * 部分更新实体类属性
     * @param target 目标对象
     * @param updates 需要更新的字段map
     */
    public static void partialUpdate(Object target, Map<String, Object> updates) {
        updates.forEach((key, value) -> {
            Field field = ReflectionUtils.findField(target.getClass(), key);
            if (field != null) {
                field.setAccessible(true);
                ReflectionUtils.setField(field, target, value);
            }
        });
    }
    
    /**
     * 复制属性
     * @param source 源对象
     * @param target 目标对象
     */
    public static void copyProperties(Object source, Object target) {
        BeanUtils.copyProperties(source, target);
    }
} 